/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.referentiel.services;

import java.util.Map;

import fr.generali.accueilclient.commun.exception.AccueilClientBusinessException;
import fr.generali.accueilclient.produit.param.ITableProduit;
import fr.generali.accueilclient.referentiel.ReferentielEnum;
import fr.generali.accueilclient.table.param.ITableParam;

/**
 * Service qui permet d'accéder au référentiel données RCE
 * 
 * @author Guillaume Lancelin
 */
public interface IReferentielService {

    /**
     * Charge le référentiel données client
     * 
     * @return le référentiel client sous la forme d'une map
     * @throws AccueilClientBusinessException .
     */
    Map<ReferentielEnum, Map<String, String>> chargerReferentielClient() throws AccueilClientBusinessException;

    /**
     * Charge le référentiel données contrat
     * 
     * @return le référentiel contrat sous la forme d'une map
     * @throws AccueilClientBusinessException .
     */
    Map<ReferentielEnum, Map<String, String>> chargerReferentielContrat() throws AccueilClientBusinessException;

    /**
     * Charge le référentiel données produit
     * 
     * @return le référentiel produit sous la forme d'une map
     * @throws AccueilClientBusinessException .
     */
    Map<ReferentielEnum, Map<ITableParam, ITableProduit>> chargerReferentielProduits()
                    throws AccueilClientBusinessException;

    /**
     * Charge le referentiel donnees produit type sante
     * 
     * @return le référentiel produit sous la forme d'une map
     * @throws AccueilClientBusinessException .
     */
    Map<ReferentielEnum, Map<ITableParam, ITableProduit>> chargerReferentielProduitsTypeSante()
                    throws AccueilClientBusinessException;
}
